From: NIIBE Yutaka Date: Fri, 25 Jan 2019 03:08:09 +0000 (+0900) Subject: agent: Support --mode=ssh option for CLEAR_PASSPHRASE. X-Git-Tag: archive/raspbian/2.2.12-1+rpi1+deb10u1^2~66 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22%22/%22http:/www.example.com/cgi/%22https:/%22%22?a=commitdiff_plain;h=b5b27a797eaf9fd95dd1b7920b7b34ace080a2b1;p=gnupg2.git agent: Support --mode=ssh option for CLEAR_PASSPHRASE. * agent/command.c (cmd_clear_passphrase): Add support for SSH. -- GnuPG-bug-id: 4340 Signed-off-by: NIIBE Yutaka (cherry picked from commit ae966bbe9b16ed68a51391afdde615339755e22d) (cherry picked from commit 77a285a0a94994ee9b42289897f9bf3075c7192d) Gbp-Pq: Topic from-2.2.14 Gbp-Pq: Name agent-Support-mode-ssh-option-for-CLEAR_PASSPHRASE.patch --- diff --git a/agent/command.c b/agent/command.c index 60eb6ad..50385b8 100644 --- a/agent/command.c +++ b/agent/command.c @@ -1568,19 +1568,24 @@ static const char hlp_clear_passphrase[] = "may be used to invalidate the cache entry for a passphrase. The\n" "function returns with OK even when there is no cached passphrase.\n" "The --mode=normal option is used to clear an entry for a cacheid\n" - "added by the agent.\n"; + "added by the agent. The --mode=ssh option is used for a cacheid\n" + "added for ssh.\n"; static gpg_error_t cmd_clear_passphrase (assuan_context_t ctx, char *line) { ctrl_t ctrl = assuan_get_pointer (ctx); char *cacheid = NULL; char *p; - int opt_normal; + cache_mode_t cache_mode = CACHE_MODE_USER; if (ctrl->restricted) return leave_cmd (ctx, gpg_error (GPG_ERR_FORBIDDEN)); - opt_normal = has_option (line, "--mode=normal"); + if (has_option (line, "--mode=normal")) + cache_mode = CACHE_MODE_NORMAL; + else if (has_option (line, "--mode=ssh")) + cache_mode = CACHE_MODE_SSH; + line = skip_options (line); /* parse the stuff */ @@ -1593,12 +1598,9 @@ cmd_clear_passphrase (assuan_context_t ctx, char *line) if (!*cacheid || strlen (cacheid) > 50) return set_error (GPG_ERR_ASS_PARAMETER, "invalid length of cacheID"); - agent_put_cache (ctrl, cacheid, - opt_normal ? CACHE_MODE_NORMAL : CACHE_MODE_USER, - NULL, 0); + agent_put_cache (ctrl, cacheid, cache_mode, NULL, 0); - agent_clear_passphrase (ctrl, cacheid, - opt_normal ? CACHE_MODE_NORMAL : CACHE_MODE_USER); + agent_clear_passphrase (ctrl, cacheid, cache_mode); return 0; }